#ifndef EMBEDDEDAPPWINDOW_H
#define EMBEDDEDAPPWINDOW_H

#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QVBoxLayout>
#include <QProcess>
#include <QTimer>
#include <Windows.h>
#include <QDebug>
#include <QWindow>

class EmbeddedAppWindow : public QWidget
{
    Q_OBJECT

public:
    EmbeddedAppWindow(QWidget *parent = nullptr) : QWidget(parent)
    {
        // 创建一个按钮来启动外部程序
        QPushButton *startButton = new QPushButton("Start External Program", this);
        QVBoxLayout *layout = new QVBoxLayout(this);
        layout->addWidget(startButton);
        setLayout(layout);

        // 连接按钮的点击事件到启动外部程序的槽
        connect(startButton, &QPushButton::clicked, this, &EmbeddedAppWindow::startExternalProgram);
    }

private slots:
    void startExternalProgram()
    {
        // 启动外部程序
        QProcess *process = new QProcess(this);
        process->start("C:\Program Files\ParaView 5.13.0\bin\paraview.exe"); // 启动外部程序（例如：记事本）

        // 延迟1秒以确保外部程序启动并创建窗口
        // QTimer::singleShot(1000, [=]() {
        //     // 获取外部程序的窗口句柄
        //     WId externalWindowHandle = (WId)FindWindowA(NULL, "ParaView 5.13.0"); // 根据窗口标题查找句柄
        //     qDebug() << "ParaView 窗口句柄: " << externalWindowHandle;
        //     QWindow *M_WINDOW = QWindow::fromWinId(externalWindowHandle);

        //     M_WINDOW->setFlags(M_WINDOW->flags() | Qt::CustomizeWindowHint | Qt::WindowTitleHint);
        //     HWND currentWindowHandle = (HWND)this->winId(); // 获取Qt窗口句柄
        //     SetParent(externalWindowHandle, currentWindowHandle); // 将外部窗口设置为当前窗口的子窗口

        //     // 调整外部窗口大小和位置
        //     MoveWindow(externalWindowHandle, 0, 0, width(), height(), TRUE);




            // if (externalWindowHandle)
            // {
            //     // 将外部窗口嵌入到当前窗口
            //     HWND currentWindowHandle = (HWND)this->winId(); // 获取Qt窗口句柄
            //     SetParent(externalWindowHandle, currentWindowHandle); // 将外部窗口设置为当前窗口的子窗口

            //     // 调整外部窗口大小和位置
            //     MoveWindow(externalWindowHandle, 0, 0, width(), height(), TRUE);
            // }


            // WId m_wid = (WId)FindWindow(L"xxx",L"xxx");//第一个参数xxx为调用的exe的类名；第二个xxx参数为调用的exe的标题名。
            // QWindow *M_WINDOW = QWindow::fromWinId(m_wid);
            // M_WINDOW->setFlags(M_WINDOW->flags() | Qt::CustomizeWindowHint | Qt::WindowTitleHint);
            // QWidget *childWidget =QWidget::createWindowContainer(M_WINDOW,this);//创建新的widget
            // ui->horizontalLayout->addWidget(childWidget);//将widget窗口加入到主界面布局中
            // childWidget->show();

 //       });
    }
};



#endif // EMBEDDEDAPPWINDOW_H
